﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using HRM.DICTIONARY.DAL;
using HRM.DICTIONARY.BLL;
using EFERP;

namespace HRM.DICTIONARY.LOGINUI
{
    public partial class xfrmChangePassword : DevExpress.XtraEditors.XtraForm
    {
        private int solanDangNhap = 0;
        private SystemLogin myLogin;

        public xfrmChangePassword()
        {
            InitializeComponent();
            //SYS_LOG.Insert("Thay Đổi Mật Khẩu", "Xem");
            myLogin = new SystemLogin();
        }

        private void btLuu_Click(object sender, EventArgs e)
        {
            //SYS_LOG.Insert("Thay Đổi Mật Khẩu", "Cập Nhật", MyLogin.UserId);
            string passwordEncrypt = StaticVariable.ToEncrypt(this.txtMatKhauCu.Text, StaticVariable.PasswKeyToEncrypt);
            if (passwordEncrypt.CompareTo(StaticVariable.UserLogin.password) != 0)
            {
                XtraMessageBox.Show("Bạn nhập mật khẩu hiện tại không đúng!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.txtMatKhauCu.Text = "";
                this.txtMatKhauCu.Focus();
                this.solanDangNhap++;
                if (this.solanDangNhap >= 3)
                {
                    XtraMessageBox.Show("Bạn đã nhập sai quá số lần cho phép!\n\nPhần mềm sẽ tự động tắt!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    base.Close();
                    Application.ExitThread();
                }
            }
            else if (this.txtMatKhauMoi.Text.CompareTo(this.txtLapLaiMatKhauMoi.Text) != 0)
            {
                XtraMessageBox.Show("Mật khẩu nhập lại không giống nhau! Xin vui lòng nhập lại!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.txtMatKhauMoi.Text = "";
                this.txtLapLaiMatKhauMoi.Text = "";
                this.txtMatKhauMoi.Focus();
                this.solanDangNhap++;
                if (this.solanDangNhap >= 3)
                {
                    XtraMessageBox.Show("Bạn đã nhập sai quá số lần cho phép!\n\nPhần mềm sẽ tự động tắt!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    base.Close();
                    Environment.Exit(0);
                }
            }
            else
            {
                passwordEncrypt = StaticVariable.ToEncrypt(this.txtMatKhauMoi.Text, StaticVariable.PasswKeyToEncrypt);
                sys_user updateUser = StaticVariable.UserLogin;
                updateUser.password = passwordEncrypt;
                if (myLogin.ChangePassword(updateUser))
                {
                    XtraMessageBox.Show(myLogin.ErrMsg, "Hoàn Thành", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    this.Close();
                }
                else
                {
                    XtraMessageBox.Show(myLogin.ErrMsg, "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        protected override bool ProcessDialogKey(Keys keyData)
        {
            Keys keys = keyData;
            if (keys != Keys.Escape)
            {
                if (keys != Keys.F10)
                {
                    return false;
                }
            }
            else
            {
                if (base.ParentForm != null)
                {
                    base.ParentForm.Close();
                }
                return true;
            }
            if (base.ParentForm != null)
            {
                base.ParentForm.Close();
            }
            return true;
        }

        private void txtLapLaiMatKhauMoi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                this.btLuu_Click(sender, e);
            }
        }
        private void txtMatKhauCu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                this.txtMatKhauMoi.Focus();
            }
        }
        private void txtMatKhauMoi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                this.txtLapLaiMatKhauMoi.Focus();
            }
        }
    }
}